define("WoltLabSuite/Filebase/Bootstrap",["require","exports","tslib","WoltLabSuite/Core/Controller/Popover"],(function(e,t,i,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setup=void 0,s=i.__importStar(s),t.setup=function(){s.init({className:"filebaseFileLink",dboAction:"filebase\\data\\file\\FileAction",identifier:"com.woltlab.filebase.file"}),s.init({attributeName:"data-file-id",className:"filebaseFileLink",dboAction:"filebase\\data\\file\\FileAction",identifier:"com.woltlab.filebase.file.deprecated"})}})),define("WoltLabSuite/Filebase/Ui/Review/IpAddressHandler",["require","exports","tslib","WoltLabSuite/Core/Dom/Change/Listener","WoltLabSuite/Core/Ui/Dialog","WoltLabSuite/Core/Ajax","WoltLabSuite/Core/Language"],(function(e,t,i,s,r,o,a){"use strict";s=i.__importStar(s),r=i.__importDefault(r),o=i.__importStar(o),a=i.__importStar(a);return class{constructor(){this.buttons=new WeakSet,this.cache=new Map,this.rebuild(),s.add("WoltLabSuite/Filebase/Ui/Review/IpAddressHandler",(()=>this.rebuild()))}rebuild(){document.querySelectorAll(".fileReviewList .jsIpAddress").forEach((e=>{const t=~~e.dataset.reviewId;this.buttons.has(e)||(e.addEventListener("click",(()=>this.click(t))),this.buttons.add(e))}))}click(e){this.cache.has(e)?r.default.open(this,this.cache.get(e)):o.api(this,{parameters:{reviewID:e}})}_ajaxSuccess(e){this.cache.set(e.returnValues.reviewID,e.returnValues.template),this.click(~~e.returnValues.reviewID)}_ajaxSetup(){return{data:{className:"filebase\\data\\file\\version\\review\\FileVersionReviewAction",actionName:"getIpLog"}}}_dialogSetup(){return{id:"reviewIPAddressDialog",source:null,options:{title:a.get("filebase.file.review.ipAddress.title")}}}}})),define("WoltLabSuite/Filebase/Ui/Review/VersionFilter",["require","exports"],(function(e,t){"use strict";return class{constructor(e){if(this.dropdownToggle=document.getElementById("dropdownToggleVersionFilter"),this.versions=new Map,this.loader=e,document.querySelector(".versionFilterList").querySelectorAll("li").forEach((e=>{const t=~~e.dataset.versionId;t&&this.versions.has(t)||(e.classList.contains("active")&&(this.activeElement=e),e.addEventListener("click",(()=>this.click(t))),this.versions.set(t,e))})),!this.activeElement)throw new Error("[WoltLabSuite/Filebase/Ui/Review/VersionFilter] No active version found.")}click(e){this.activeElement.classList.remove("active"),this.activeElement=this.versions.get(e),this.activeElement.classList.add("active"),this.dropdownToggle.innerHTML=this.activeElement.innerHTML,this.loader.refresh()}activeVersionID(){return~~this.activeElement.dataset.versionId}}})),define("WoltLabSuite/Filebase/Ui/Review/SortHandler",["require","exports","tslib","WoltLabSuite/Core/Language"],(function(e,t,i,s){"use strict";s=i.__importStar(s);return class{constructor(e){if(this.dropdownToggle=document.getElementById("reviewSortOrder"),this.sortFields=new Map,this.loader=e,document.querySelector(".reviewSortOrderFields").querySelectorAll("li").forEach((e=>{const t=e.dataset.sortField;null===t||this.sortFields.has(t)||(e.classList.contains("active")&&(this._activeSortField=e),e.addEventListener("click",(()=>this.clickSortField(t))),this.sortFields.set(t,e))})),null===this.activeSortField)throw new Error("[WoltLabSuite/Filebase/Ui/Review/SortHandler] No active sort field found.");this.sortOrderField=document.getElementById("reviewToggleSortOrder"),this.sortOrderField.addEventListener("click",(()=>this.toggleSortOrder()))}clickSortField(e){this._activeSortField.classList.remove("active"),this._activeSortField=this.sortFields.get(e),this._activeSortField.classList.add("active"),this.dropdownToggle.innerHTML=this._activeSortField.innerHTML,this.loader.refresh()}toggleSortOrder(){"DESC"===this.activeSortOrder()?(this.sortOrderField.classList.remove("fa-sort-amount-desc"),this.sortOrderField.classList.add("fa-sort-amount-asc"),this.sortOrderField.title=`${s.get("wcf.global.sorting")} (${s.get("wcf.global.sortOrder.ascending")})`,this.sortOrderField.dataset.sortOrder="ASC"):(this.sortOrderField.classList.remove("fa-sort-amount-asc"),this.sortOrderField.classList.add("fa-sort-amount-desc"),this.sortOrderField.title=`${s.get("wcf.global.sorting")} (${s.get("wcf.global.sortOrder.descending")})`,this.sortOrderField.dataset.sortOrder="DESC"),this.loader.refresh()}activeSortOrder(){return this.sortOrderField.dataset.sortOrder}activeSortField(){return this._activeSortField.dataset.sortField}}})),define("WoltLabSuite/Filebase/Ui/Review/Loader",["require","exports","tslib","WoltLabSuite/Core/Language","WoltLabSuite/Core/Ajax","WoltLabSuite/Core/Ui/Scroll","WoltLabSuite/Core/Dom/Util","./VersionFilter","./SortHandler"],(function(e,t,i,s,r,o,a,l,n){"use strict";s=i.__importStar(s),r=i.__importStar(r),o=i.__importStar(o),a=i.__importStar(a),l=i.__importDefault(l),n=i.__importDefault(n);return class{constructor(e){if(this.button=void 0,this.loadedObjects=5,this.loadMoreLi=void 0,this.loadingLi=void 0,this.permalinkReview=void 0,this.scrollTarget=void 0,this.versionFilter=void 0,this.hasFiles=e,this.objectList=document.getElementById("fileReviewList"),!this.objectList)throw new Error("[WoltLabSuite/Filebase/Ui/Review/Loader] Unable to find object list container.");~~this.objectList.dataset.reviews>=5&&this.createButton(!1),window.addEventListener("hashchange",(()=>{const e=/^#reviews\/review(\d+)/.exec(window.location.hash);if(e){const t=e[1];window.setTimeout((()=>{const e=document.querySelector(".filebaseReview"+t);e&&e.scrollIntoView({behavior:"smooth"})}),100)}}));const t=/^#reviews\/review(\d+)/.exec(window.location.hash);if(t){const e=t[1],i=document.querySelector(".filebaseReview"+e);i?this.scrollTo(i,!0):this.loadReview(~~e)}this.hasFiles&&(this.versionFilter=new l.default(this)),this.sortHandler=new n.default(this)}createButton(e){this.loadMoreLi=document.createElement("li"),this.loadMoreLi.classList.add("reviewLoadNext","showMore"),this.button=document.createElement("button"),this.button.classList.add("small"),this.button.innerText=s.get("filebase.file.review.more"),this.button.addEventListener("click",(e=>this.click(e))),this.loadMoreLi.append(this.button),e&&a.hide(this.loadMoreLi),this.objectList.append(this.loadMoreLi)}click(e){e&&e.preventDefault(),this.button.disabled=!0,r.api(this,{actionName:"loadReviews",parameters:{data:{loadedObjects:this.loadedObjects,fileID:this.objectList.dataset.fileId,versionID:this.versionFilter?this.versionFilter.activeVersionID():0,sortOrder:this.sortHandler.activeSortOrder(),sortField:this.sortHandler.activeSortField()}}})}refresh(){this.objectList.innerHTML="",this.createButton(!0),this.loadedObjects=0,this.loadingLi=document.createElement("li"),this.loadingLi.classList.add("reviewPermalinkContainer","loading"),this.loadingLi.innerHTML='',this.loadMoreLi.insertAdjacentElement("beforebegin",this.loadingLi),this.click()}scrollTo(e,t){this.scrollTarget||(this.scrollTarget=document.createElement("span"),this.scrollTarget.classList.add("reviewScrollTarget"),document.body.appendChild(this.scrollTarget)),this.scrollTarget.style.setProperty("top",(e.getBoundingClientRect().top+window.pageYOffset-49).toString()+"px",""),o.element(this.scrollTarget,(function(){t&&(e.classList.contains("reviewHighlightTarget")&&(e.classList.remove("reviewHighlightTarget"),e.offsetTop),e.classList.add("reviewHighlightTarget"))}))}loadReview(e){this.permalinkReview=document.createElement("li"),this.permalinkReview.classList.add("reviewPermalinkContainer","loading"),this.permalinkReview.innerHTML='',this.objectList.insertBefore(this.permalinkReview,this.objectList.firstChild),r.api(this,{actionName:"loadReview",objectIDs:[e],parameters:{data:{fileID:this.objectList.dataset.fileId}}})}_ajaxSuccess(e){if("loadReviews"===e.actionName){if(this.loadingLi&&(this.loadingLi.remove(),this.loadingLi=void 0),this.loadedObjects+=e.returnValues.loadedObjects,0===this.loadedObjects){const e=document.createElement("li");e.classList.add("info"),this.versionFilter&&0===this.versionFilter.activeVersionID()?e.innerHTML=s.get("filebase.file.review.noReview"):e.innerHTML=s.get("filebase.file.review.noReviewVersion"),this.objectList.insertBefore(e,this.loadMoreLi)}else{const t=a.createFragmentFromHtml(e.returnValues.template);this.objectList.insertBefore(t,this.loadMoreLi)}5==~~e.returnValues.loadedObjects?(this.button.disabled=!1,a.show(this.loadMoreLi)):this.loadMoreLi.remove()}else{if("loadReview"!==e.actionName)throw new Error("[WoltLabSuite/Filebase/Ui/Review/Loader] Unknown actionName for AJAX request returned.");{const t=a.createFragmentFromHtml(e.returnValues.template);this.objectList.insertBefore(t,this.permalinkReview),this.permalinkReview.remove();const i=document.querySelector(".filebaseReview"+e.objectIDs[0].toString());this.scrollTo(i,!0)}}}_ajaxSetup(){return{data:{className:"filebase\\data\\file\\version\\review\\FileVersionReviewAction"}}}}})),define("WoltLabSuite/Filebase/Ui/Object/Action/Review/Response/Delete",["require","exports","tslib","WoltLabSuite/Core/Ui/Object/Action/Handler"],(function(e,t,i,s){"use strict";function r(e){const t=e.objectElement.querySelector('.jsObjectAction[data-object-action="delete"]');t&&"com.woltlab.filebase.file.review.response.delete"===t.dataset.objectActionHandler&&(t.closest("li").remove(),e.objectElement.querySelector(".filebaseReviewResponseEditButton").closest("li").remove(),e.objectElement.querySelector(".filebaseReviewResponse").remove())}Object.defineProperty(t,"__esModule",{value:!0}),t.setup=void 0,s=i.__importDefault(s),t.setup=function(){new s.default("delete",["delete"],r)}}));